package com.bsh.service;

import java.util.List;
import java.util.Map;

import com.bsh.mybatis.model.Admin;
import com.bsh.mybatis.model.Role;
import com.bsh.utils.Pager;

public interface AdminService {

	/**
	 * 登录 
	 * @param loginName
	 * @param password
	 * @return
	 */
	Admin getLoginAdmin(String loginName, String password);

	/**
	 * 管理员分页
	 * 
	 * @param start
	 * @param end
	 * @return
	 */
	List<Map<String, Object>> getPage(Pager pager, String userName, String email);

	/**
	 * 查管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Admin getAdmin(Integer adminid);

	/**
	 * 添加管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer addAdmin(Admin admin);

	/**
	 * 修改管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer editAdmin(Admin admin);

	/**
	 * 禁用管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer enableAdmin(int id, boolean isEnabele);

	/**
	 * 批量禁用管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer disableBatch(int[] idList);

	/**
	 * 批量启用管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer enableBatch(int[] idList);

	/**
	 * 删除管理员
	 * 
	 * @param adminid
	 * @return
	 */
	Integer deleteAdmin(int adminId);

	/**
	 * 查看管理员的角色
	 * @param adminId
	 * @return
	 */
	List<Role> getAdminRoles(int adminId);

	/**
	 * 重设密码
	 * @param adminId
	 * @return
	 */
	Integer resetPassword(int adminId);

	/**
	 * 修改密码
	 * @param adminId
	 * @param password
	 * @param newPassword
	 * @return
	 */
	Integer changePassword(int adminId, String password, String newPassword);

	/**
	 * 登录
	 * @param loginName
	 * @param encodePassword 加密后的密码
	 * @return
	 */
	Admin getLoginAdminByEncodePsw(String loginName, String encodePassword);

}